package cn.fl.system.transform;

import java.util.ArrayList;
import java.util.List;

import cmm.user.facade.system.dto.SysUsrOpLDTO;
import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.system.vo.SysUsrOpLVO;

 /**
 * @Description: 用户操作日志表（登录/退出/增加/删除/修改/查询等） 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class SysUsrOpLVOTransform {


	/**
	 * DTO 转  VO
	 * @param po SysUsrOpLDTO
	 * @return SysUsrOpLVO
	 */
	public static SysUsrOpLVO toVO(SysUsrOpLDTO dto) {
		SysUsrOpLVO  vo = null;
		if (dto != null) { 
			vo = new SysUsrOpLVO();
			vo.setId(dto.getId());
			vo.setUsrId(dto.getUsrId());//系统用户ID（SYS_USR.USR_ID）
			vo.setSysCd(dto.getSysCd());//操作系统（SYS0001）
			vo.setOpTypCd(dto.getOpTypCd());//操作类型（CMM0005）
			vo.setOpTm(dto.getOpTm());//操作时间
			vo.setMdlNm(dto.getMdlNm());//模块名称
			vo.setLocalIp(dto.getLocalIp());//本地系统IP
			vo.setRemoteIp(dto.getRemoteIp());//远端系统IP
			vo.setFacadeNm(dto.getFacadeNm());//接口名称
			vo.setMethodNm(dto.getMethodNm());//方法名称,方法内调用方法可以用分隔符分开
			vo.setReqContent(dto.getReqContent());//请求内容
			vo.setBeforeContent(dto.getBeforeContent());//请求前内容
			vo.setResContent(dto.getResContent());//响应内容

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto SysUsrOpLVO
	 * @return SysUsrOpLDTO
	 */
	public static SysUsrOpLDTO toDTO(SysUsrOpLVO vo) {
		SysUsrOpLDTO dto = null;
		if (vo != null) {
			dto = new SysUsrOpLDTO();
			dto.setId(vo.getId());
			dto.setUsrId(vo.getUsrId());//系统用户ID（SYS_USR.USR_ID）
			dto.setSysCd(vo.getSysCd());//操作系统（SYS0001）
			dto.setOpTypCd(vo.getOpTypCd());//操作类型（CMM0005）
			dto.setOpTm(vo.getOpTm());//操作时间
			dto.setMdlNm(vo.getMdlNm());//模块名称
			dto.setLocalIp(vo.getLocalIp());//本地系统IP
			dto.setRemoteIp(vo.getRemoteIp());//远端系统IP
			dto.setFacadeNm(vo.getFacadeNm());//接口名称
			dto.setMethodNm(vo.getMethodNm());//方法名称,方法内调用方法可以用分隔符分开
			dto.setReqContent(vo.getReqContent());//请求内容
			dto.setBeforeContent(vo.getBeforeContent());//请求前内容
			dto.setResContent(vo.getResContent());//响应内容

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<SysUsrOpLDTO>
	 * @return List<SysUsrOpLVO>
	 */
	public static List<SysUsrOpLVO> toVOList(List<SysUsrOpLDTO> list) {
		List<SysUsrOpLVO>  voList = new ArrayList<SysUsrOpLVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (SysUsrOpLDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<SysUsrOpLVO>
	 * @return List<SysUsrOpLDTO>
	 */
	public static List<SysUsrOpLDTO> toDTOList(List<SysUsrOpLVO> list) {
		List<SysUsrOpLDTO>  dtoList = new ArrayList<SysUsrOpLDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (SysUsrOpLVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
